package com.enjoyor.soa.traffic.api.uums.service.dubbo;

import com.enjoyor.soa.traffic.api.uums.dto.RoleDto;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 角色
 * 
 * @author wuhao
 *
 */

public interface DubboRoleService {

    /**
     * 添加角色
     * 
     * @param roleDto
     *            ：{@link RoleDto}
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo insertRole(RoleDto roleDto, String token, String systemKey);

    /**
     * 删除单个角色
     * 
     * @param roleId
     *            ：角色编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo deleteRoleById(String roleId, String token, String systemKey);

    /**
     * 删除多个角色
     * 
     * @param ids
     *            ：roleId的字符串，用“,”隔开
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo deleteRoleByIds(String ids, String token, String systemKey);

    /**
     * 更新角色
     * 
     * @param roleDto
     *            ：{@link RoleDto}
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo updateRole(RoleDto roleDto, String token, String systemKey);

    /**
     * 获取单个角色
     * 
     * @param roleId
     *            ：角色编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo getRoleById(String roleId, String token, String systemKey);

    /**
     * 获取角色列表
     * 
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo getRoleList(String token, String systemKey);

    /**
     * 分页获取角色
     * 
     * @param paramJSON
     *            ：包含start（开始页），limit（分页的大小）的JSON字符串
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo getRolePage(String paramJSON, String token, String systemKey);

    /**
     * 获取用户对应的角色
     * 
     * @param userId
     *            ：用户编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo getRoleByUserId(String userId, String token, String systemKey);

    /**
     * 添加用户对应的角色
     * 
     * @param paramJSON
     *            :包含roleId，userId的 JSON字符串
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */
    public ResultPojo insertUserRole(String paramJSON, String token, String systemKey);

    /***
     * 
     * @Title: insertSSOUserRole @Description: 插入单点登录用户对应的应用系统的角色 @param
     *         paramJSON :包含roleId，userName的 JSON字符串 @param token @param
     *         systemKey @return @throws
     */
    public ResultPojo insertSSOUserRole(String paramJSON, String token, String systemKey);

    /***
     * 
     * @Title: getSSOUserRole @Description: 获取单点登录用户对应的应用系统的角色信息 @param
     *         userId @param token @param systemKey @return RoleDto @throws
     */
    public ResultPojo getSSOUserRole(String userId, String token, String systemKey);

}
